In technical fields such as automobiles, elevators and construction machinery, an embedded control device is used to control a control target through so-called embedded software. Embedded software has advantages of realizing flexible and advanced control compared to a conventional scheme using a conventional mechanical mechanism or an electric circuit, and developing variety of secondary products by partially modifying the software.
As an embedded control device, for example, a vehicle control device is required to support various vehicle types such as a light automobile, a compact automobile, a luxury automobile, a minivan and a sports car, or to conform to regulations of each delivery destination or to satisfy customers' preferences, which causes increase of the number of variations of software. To meet these requirements, an object-oriented development scheme or a component-oriented development scheme is employed to create software components, and develop and/or reuse software on the component basis.
So-called real time performance having capability of completing a calculation and executing a response within a predetermined time is required since such an embedded control device handles physical phenomena of a control target. For example, an engine controller as one example of a vehicle control device is required to start up a calculation process synchronizing with a rotation angle signal of an engine, and to complete an execution of an ignition control within a predetermined response time.
In order to realize the above-mentioned real time process, a preemption process based on the execution priority is introduced in an embedded control device. In a preemption process, for example, a process allowing a slower response time such as a thermometry is defined as a low priority process and a process requiring a quick response time such as an ignition control is defined as a high priority process, and a high priority process may interrupt in a low priority process during execution of the low priority process.
Meanwhile, in digital control logic commonly used in an embedded control device, it is an assumption that control data is supposed not to be changed while the control date is being referred to by a certain control process during execution of this control process.
For example, in the case of implementing a control designed by using an ordinary differential equation, the ordinary differential equation is discretized at a certain clock tick rate and converted into a difference equation, and then this converted difference equation is calculated on a microcontroller at a time period corresponding to the clock tick rate, so as to realize the designed control. At this time, the control logic has an assumption that a difference equation calculation is instantly completed. In reality, however, a certain time is required for a calculation on a microcontroller. For this reason, it is important to satisfy so-called data concurrency that control data being referred to during an execution of a certain control process is supposed not to be changed.
Patent Literature 1 discloses an example of an embedded control device including plural software components. In this embedded control device, if data reference component with low priority refers to control data of a data disclosing source component with high priority, a disable interruption instruction is issued to the data disclosing source component at the time of executing the data reference component, thereby securing data concurrency.
Patent Literature 2 discloses an example of an embedded control device providing conversion data different from control data calculated by a data disclosing source component. In this embedded control device, disclosure data of the data disclosing source component is converted in a data format in accordance with a request from a data reference component, and the data in this format is stored as converted data, thereby reducing load of a data conversion process.